home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / FileTransfers.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  12.5 KB  |  320 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        FileTransfers.mod
  3.  
  4.      Contains:    CommToolbox File Transfer Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE FileTransfers;
  23.  
  24. IMPORT SYSTEM, Types, Memory, Quickdraw, Events, Dialogs, Files,
  25.        StandardFile, Connections, Terminals;
  26.  
  27. (* $PUSH*)
  28. (* $ALIGN MAC68K*)
  29. (* $LibExport+*)
  30.  
  31. CONST
  32. (* current file transfer manager version    *)
  33.     curFTVersion*                = 2;
  34. (* FTErr    *)
  35.     ftGenericError*                = -1;
  36.     ftNoErr*                        = 0;
  37.     ftRejected*                    = 1;
  38.     ftFailed*                    = 2;
  39.     ftTimeOut*                    = 3;
  40.     ftTooManyRetry*                = 4;
  41.     ftNotEnoughDSpace*            = 5;
  42.     ftRemoteCancel*                = 6;
  43.     ftWrongFormat*                = 7;
  44.     ftNoTools*                    = 8;
  45.     ftUserCancel*                = 9;
  46.     ftNotSupported*                = 10;
  47.  
  48.     
  49. TYPE
  50.     FTErr* = Types.OSErr;
  51.  
  52.  
  53. CONST
  54.     ftIsFTMode*                    = ASH(1,0);
  55.     ftNoMenus*                    = ASH(1,1);
  56.     ftQuiet*                        = ASH(1,2);
  57.     ftConfigChanged*                = ASH(1,4);
  58.     ftSucc*                        = ASH(1,7);
  59.  
  60.     
  61. TYPE
  62.     FTFlags* = LONGINT;
  63.  
  64.  
  65. CONST
  66.     ftSameCircuit*                = ASH(1,0);
  67.     ftSendDisable*                = ASH(1,1);
  68.     ftReceiveDisable*            = ASH(1,2);
  69.     ftTextOnly*                    = ASH(1,3);
  70.     ftNoStdFile*                    = ASH(1,4);
  71.     ftMultipleFileSend*            = ASH(1,5);
  72.  
  73.     
  74. TYPE
  75.     FTAttributes* = INTEGER;
  76.  
  77.  
  78. CONST
  79.     ftReceiving*                    = 0;
  80.     ftTransmitting*                = 1;
  81.  
  82.     
  83. TYPE
  84.     FTDirection* = INTEGER;
  85.  
  86. (*    application routines type definitions *)
  87.     FTPtr* = POINTER TO FTRecord;
  88.     FTHandle* = HANDLE TO FTRecord (*ΔΔ POINTER TO FTPtr*);
  89.  
  90.     FileTransferDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hTerm: Terminals.TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  91.     FileTransferReadProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR count: LONGINT; pData: Types.Ptr; refCon: LONGINT; fileMsg: INTEGER): Types.OSErr;
  92.     FileTransferWriteProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR count: LONGINT; pData: Types.Ptr; refCon: LONGINT; fileMsg: INTEGER): Types.OSErr;
  93.     FileTransferSendProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (thePtr: Types.Ptr; theSize: LONGINT; refCon: LONGINT; channel: Connections.CMChannel; flag: Connections.CMFlags): Memory.Size;
  94.     FileTransferReceiveProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (thePtr: Types.Ptr; theSize: LONGINT; refCon: LONGINT; channel: Connections.CMChannel; VAR flag: Connections.CMFlags): Memory.Size;
  95.     FileTransferEnvironsProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (refCon: LONGINT; VAR theEnvirons: Connections.ConnEnvironRec): Types.OSErr;
  96.     FileTransferNotificationProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hFT: FTHandle; pFSSpec: Files.FSSpecPtr);
  97.     FileTransferChooseIdleProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ;
  98.     FileTransferDefUPP* = Types.UniversalProcPtr;
  99.     FileTransferReadUPP* = Types.UniversalProcPtr;
  100.     FileTransferWriteUPP* = Types.UniversalProcPtr;
  101.     FileTransferSendUPP* = Types.UniversalProcPtr;
  102.     FileTransferReceiveUPP* = Types.UniversalProcPtr;
  103.     FileTransferEnvironsUPP* = Types.UniversalProcPtr;
  104.     FileTransferNotificationUPP* = Types.UniversalProcPtr;
  105.     FileTransferChooseIdleUPP* = Types.UniversalProcPtr;
  106.  
  107.     FTRecord* = (*ΔΔPACKEDΔΔ*) RECORD
  108.         procID*:                    INTEGER;
  109.         flags*:                    FTFlags;
  110.         errCode*:                FTErr;
  111.         refCon*:                    LONGINT;
  112.         userData*:                LONGINT;
  113.         defProc*:                FileTransferDefUPP;
  114.         config*:                    Types.Ptr;
  115.         oldConfig*:                Types.Ptr;
  116.         environsProc*:            FileTransferEnvironsUPP;
  117.         reserved1*:                LONGINT;
  118.         reserved2*:                LONGINT;
  119.         ftPrivate*:                Types.Ptr;
  120.         sendProc*:                FileTransferSendUPP;
  121.         recvProc*:                FileTransferReceiveUPP;
  122.         writeProc*:                FileTransferWriteUPP;
  123.         readProc*:                FileTransferReadUPP;
  124.         owner*:                    Quickdraw.WindowPtr;
  125.         direction*:                FTDirection;
  126.         theReply*:                StandardFile.SFReply;
  127.         writePtr*:                LONGINT;
  128.         readPtr*:                LONGINT;
  129.         theBuf*:                    SYSTEM.PTR (*ΔΔ POINTER TO CHAR*);
  130.         bufSize*:                LONGINT;
  131.         autoRec*:                Types.Str255;
  132.         attributes*:                FTAttributes;
  133.     END;
  134.  
  135.  
  136. CONST
  137. (* FTReadProc messages *)
  138.     ftReadOpenFile*                = 0;                            (* count* = forkFlags, buffer* = pblock from PBGetFInfo *)
  139.     ftReadDataFork*                = 1;
  140.     ftReadRsrcFork*                = 2;
  141.     ftReadAbort*                    = 3;
  142.     ftReadComplete*                = 4;
  143.     ftReadSetFPos*                = 6;                            (* count* = forkFlags, buffer* = pBlock same as PBSetFPos *)
  144.     ftReadGetFPos*                = 7;                            (* count* = forkFlags, buffer* = pBlock same as PBGetFPos *)
  145. (* FTWriteProc messages *)
  146.     ftWriteOpenFile*                = 0;                            (* count* = forkFlags, buffer* = pblock from PBGetFInfo *)
  147.     ftWriteDataFork*                = 1;
  148.     ftWriteRsrcFork*                = 2;
  149.     ftWriteAbort*                = 3;
  150.     ftWriteComplete*                = 4;
  151.     ftWriteFileInfo*                = 5;
  152.     ftWriteSetFPos*                = 6;                            (* count* = forkFlags, buffer* = pBlock same as PBSetFPos *)
  153.     ftWriteGetFPos*                = 7;                            (* count* = forkFlags, buffer* = pBlock same as PBGetFPos *)
  154. (*    fork flags *)
  155.     ftOpenDataFork*                = 1;
  156.     ftOpenRsrcFork*                = 2;
  157.  
  158.     uppFileTransferDefProcInfo* = $0000FEF0; (* PROCEDURE (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; *)
  159.     uppFileTransferReadProcInfo* = $00002FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; *)
  160.     uppFileTransferWriteProcInfo* = $00002FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; *)
  161.     uppFileTransferSendProcInfo* = $0000AFF0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param): 4 byte result; *)
  162.     uppFileTransferReceiveProcInfo* = $0000EFF0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param): 4 byte result; *)
  163.     uppFileTransferEnvironsProcInfo* = $000003E0; (* PROCEDURE (4 byte param, 4 byte param): 2 byte result; *)
  164.     uppFileTransferNotificationProcInfo* = $000003C0; (* PROCEDURE (4 byte param, 4 byte param); *)
  165.     uppFileTransferChooseIdleProcInfo* = $00000000; (* PROCEDURE ; *)
  166.  
  167. PROCEDURE NewFileTransferDefProc*(userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  168.     (*$IF NOT GENERATINGCFM *)
  169.     INLINE PASCAL $2E9F;
  170.     (*$END*)
  171.  
  172. PROCEDURE NewFileTransferReadProc*(userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  173.     (*$IF NOT GENERATINGCFM *)
  174.     INLINE PASCAL $2E9F;
  175.     (*$END*)
  176.  
  177. PROCEDURE NewFileTransferWriteProc*(userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  178.     (*$IF NOT GENERATINGCFM *)
  179.     INLINE PASCAL $2E9F;
  180.     (*$END*)
  181.  
  182. PROCEDURE NewFileTransferSendProc*(userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  183.     (*$IF NOT GENERATINGCFM *)
  184.     INLINE PASCAL $2E9F;
  185.     (*$END*)
  186.  
  187. PROCEDURE NewFileTransferReceiveProc*(userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  188.     (*$IF NOT GENERATINGCFM *)
  189.     INLINE PASCAL $2E9F;
  190.     (*$END*)
  191.  
  192. PROCEDURE NewFileTransferEnvironsProc*(userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  193.     (*$IF NOT GENERATINGCFM *)
  194.     INLINE PASCAL $2E9F;
  195.     (*$END*)
  196.  
  197. PROCEDURE NewFileTransferNotificationProc*(userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  198.     (*$IF NOT GENERATINGCFM *)
  199.     INLINE PASCAL $2E9F;
  200.     (*$END*)
  201.  
  202. PROCEDURE NewFileTransferChooseIdleProc*(userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  203.     (*$IF NOT GENERATINGCFM *)
  204.     INLINE PASCAL $2E9F;
  205.     (*$END*)
  206.  
  207. PROCEDURE CallFileTransferDefProc*(hTerm: Terminals.TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  208.     (*$IF NOT GENERATINGCFM*)
  209.     INLINE PASCAL $205F, $4E90;
  210.     (*$END*)
  211.  
  212. PROCEDURE CallFileTransferReadProc*(VAR count: LONGINT; pData: Types.Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): Types.OSErr;
  213.     (*$IF NOT GENERATINGCFM*)
  214.     INLINE PASCAL $205F, $4E90;
  215.     (*$END*)
  216.  
  217. PROCEDURE CallFileTransferWriteProc*(VAR count: LONGINT; pData: Types.Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): Types.OSErr;
  218.     (*$IF NOT GENERATINGCFM*)
  219.     INLINE PASCAL $205F, $4E90;
  220.     (*$END*)
  221.  
  222. PROCEDURE CallFileTransferSendProc*(thePtr: Types.Ptr; theSize: LONGINT; refCon: LONGINT; channel: Connections.CMChannel; flag: Connections.CMFlags; userRoutine: FileTransferSendUPP): Memory.Size;
  223.     (*$IF NOT GENERATINGCFM*)
  224.     INLINE PASCAL $205F, $4E90;
  225.     (*$END*)
  226.  
  227. PROCEDURE CallFileTransferReceiveProc*(thePtr: Types.Ptr; theSize: LONGINT; refCon: LONGINT; channel: Connections.CMChannel; VAR flag: Connections.CMFlags; userRoutine: FileTransferReceiveUPP): Memory.Size;
  228.     (*$IF NOT GENERATINGCFM*)
  229.     INLINE PASCAL $205F, $4E90;
  230.     (*$END*)
  231.  
  232. PROCEDURE CallFileTransferEnvironsProc*(refCon: LONGINT; VAR theEnvirons: Connections.ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): Types.OSErr;
  233.     (*$IF NOT GENERATINGCFM*)
  234.     INLINE PASCAL $205F, $4E90;
  235.     (*$END*)
  236.  
  237. PROCEDURE CallFileTransferNotificationProc*(hFT: FTHandle; pFSSpec: Files.FSSpecPtr; userRoutine: FileTransferNotificationUPP);
  238.     (*$IF NOT GENERATINGCFM*)
  239.     INLINE PASCAL $205F, $4E90;
  240.     (*$END*)
  241.  
  242. PROCEDURE CallFileTransferChooseIdleProc*(userRoutine: FileTransferChooseIdleUPP);
  243.     (*$IF NOT GENERATINGCFM*)
  244.     INLINE PASCAL $205F, $4E90;
  245.     (*$END*)
  246.  
  247. PROCEDURE InitFT*(): FTErr;
  248.     EXTERNAL PASCAL;
  249. PROCEDURE FTGetVersion*(hFT: FTHandle): Types.Handle;
  250.     EXTERNAL PASCAL;
  251. PROCEDURE FTGetFTVersion*(): INTEGER;
  252.     EXTERNAL PASCAL;
  253. PROCEDURE FTNew*(procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: Quickdraw.WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  254.     EXTERNAL PASCAL;
  255. PROCEDURE FTDispose*(hFT: FTHandle);
  256.     EXTERNAL PASCAL;
  257. PROCEDURE FTStart*(hFT: FTHandle; direction: FTDirection; (*CONST*)VAR fileInfo: StandardFile.SFReply): FTErr;
  258.     EXTERNAL PASCAL;
  259. PROCEDURE FTAbort*(hFT: FTHandle): FTErr;
  260.     EXTERNAL PASCAL;
  261. PROCEDURE FTSend*(hFT: FTHandle; numFiles: INTEGER; pFSSpec: Files.FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  262.     EXTERNAL PASCAL;
  263. PROCEDURE FTReceive*(hFT: FTHandle; pFSSpec: Files.FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  264.     EXTERNAL PASCAL;
  265. PROCEDURE FTExec*(hFT: FTHandle);
  266.     EXTERNAL PASCAL;
  267. PROCEDURE FTActivate*(hFT: FTHandle; activate: BOOLEAN);
  268.     EXTERNAL PASCAL;
  269. PROCEDURE FTResume*(hFT: FTHandle; resume: BOOLEAN);
  270.     EXTERNAL PASCAL;
  271. PROCEDURE FTMenu*(hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  272.     EXTERNAL PASCAL;
  273. PROCEDURE FTChoose*(VAR hFT: FTHandle; where: Types.Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  274.     EXTERNAL PASCAL;
  275. PROCEDURE FTEvent*(hFT: FTHandle; (*CONST*)VAR theEvent: Events.EventRecord);
  276.     EXTERNAL PASCAL;
  277. PROCEDURE FTValidate*(hFT: FTHandle): BOOLEAN;
  278.     EXTERNAL PASCAL;
  279. PROCEDURE FTDefault*(VAR theConfig: Types.Ptr; procID: INTEGER; allocate: BOOLEAN);
  280.     EXTERNAL PASCAL;
  281. PROCEDURE FTSetupPreflight*(procID: INTEGER; VAR magicCookie: LONGINT): Types.Handle;
  282.     EXTERNAL PASCAL;
  283. PROCEDURE FTSetupSetup*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; VAR magicCookie: LONGINT);
  284.     EXTERNAL PASCAL;
  285. PROCEDURE FTSetupFilter*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; VAR theEvent: Events.EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  286.     EXTERNAL PASCAL;
  287. PROCEDURE FTSetupItem*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  288.     EXTERNAL PASCAL;
  289. PROCEDURE FTSetupXCleanup*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  290.     EXTERNAL PASCAL;
  291. PROCEDURE FTSetupPostflight*(procID: INTEGER);
  292.     EXTERNAL PASCAL;
  293. PROCEDURE FTGetConfig*(hFT: FTHandle): Types.Ptr;
  294.     EXTERNAL PASCAL;
  295. PROCEDURE FTSetConfig*(hFT: FTHandle; thePtr: (*ΔΔUNIVΔΔ*) Types.Ptr): INTEGER;
  296.     EXTERNAL PASCAL;
  297. PROCEDURE FTIntlToEnglish*(hFT: FTHandle; inputPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR outputPtr: Types.Ptr; language: INTEGER): Types.OSErr;
  298.     EXTERNAL PASCAL;
  299. PROCEDURE FTEnglishToIntl*(hFT: FTHandle; inputPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR outputPtr: Types.Ptr; language: INTEGER): Types.OSErr;
  300.     EXTERNAL PASCAL;
  301. PROCEDURE FTGetToolName*(procID: INTEGER; VAR name: Types.Str255);
  302.     EXTERNAL PASCAL;
  303. PROCEDURE FTGetProcID*(name: Types.ConstStr255Param): INTEGER;
  304.     EXTERNAL PASCAL;
  305. PROCEDURE FTSetRefCon*(hFT: FTHandle; refCon: LONGINT);
  306.     EXTERNAL PASCAL;
  307. PROCEDURE FTGetRefCon*(hFT: FTHandle): LONGINT;
  308.     EXTERNAL PASCAL;
  309. PROCEDURE FTSetUserData*(hFT: FTHandle; userData: LONGINT);
  310.     EXTERNAL PASCAL;
  311. PROCEDURE FTGetUserData*(hFT: FTHandle): LONGINT;
  312.     EXTERNAL PASCAL;
  313. PROCEDURE FTGetErrorString*(hFT: FTHandle; id: INTEGER; VAR errMsg: Types.Str255);
  314.     EXTERNAL PASCAL;
  315.  
  316. (* $ALIGN RESET*)
  317. (* $POP*)
  318.  
  319.  END FileTransfers.
  320.